﻿//////////////////////////////////////////////////////////////////////////////
// <copyright file="IPluginLoader.cs" company="Venhan Technologies Pvt. Ltd.">
// (c) 2013 Venhan Technologies, Narayana Reddy Tera. All rights reserved.
// </copyright>
//////////////////////////////////////////////////////////////////////////////

namespace Venhan.Framework.PluginManagement
{
  using System.Collections.Generic;

  /// <summary>
  /// Interface for plugin loader.
  /// </summary>
  /// <typeparam name="TPlugin">The type of the plugin.</typeparam>
  /// <typeparam name="TPluginData">The type of the plugin data.</typeparam>
  public interface IPluginLoader<TPlugin, TPluginData>
    where TPlugin : IPlugin
    where TPluginData : IPluginMetaData
  {
    /// <summary>
    /// Gets the plugins.
    /// </summary>
    /// <returns>List of Plugins.</returns>
    IEnumerable<LazyPlugin<TPlugin, TPluginData>> GetPlugins();
  }
}
